package org.yefei.homeworkday26;

import java.util.*;

public class Three {
	/**
	 * 3：输入一个字符串，输出他的最长的连续回文子串，回文是指颠倒后和原串相同， 比如aaabcba2222,则最长子串是 abcba
	 */
	// 判断是否是回文串
	public void judge() {
		Scanner in = new Scanner(System.in);
		System.out.print("请输入一个字符串：");
		String s = in.nextLine();
		if (s.length() <= 1) {
			System.out.println(s + "为单个字符串");
			return;
		}
		// 颠倒字符串
		StringBuilder sb = new StringBuilder();
		sb.append(s);
		String str = sb.reverse().toString();

		String temp = null;
		int count = 0;
		// 以固定长度截取字符串，在s.length()~2之间截取,从大到小
		// 外层循环控制截取字符串长度
		for (int i = str.length(); i >= 2; i--) {
			// 内层循环控制截取字符串的开始和结束位置
			for (int j = 0; j < str.length() - i + 1; j++) {
				temp = str.substring(j, j + i);
				if (s.indexOf(temp) > -1) {
					System.out.println("最长的连续回文子串是：" + temp);
					// 计数长度相同的回文子串
					count++;
				}
			}
			// 如果找到回文子串，跳出方法
			if (count != 0)
				return;
		}
		System.err.println("不存在最长的回文子串!");
	}

	public static void main(String[] args) {
		Three p = new Three();
		p.judge();
	}
}
